// pages/douyindown/douyindown.js
Page({
    data: {
        inputText: '',
        videoData: null,
        isLoading: false,
        showTip: false,
        tipText: '',
        tipType: 'success',
        showDisclaimer: false, // 新增弹窗显示状态
    },
    onShow() {
        console.log('[TRACE] 页面显示');
        this.checkLoginStatus();
    },

    // ====================== 登录状态检查 ======================  
    checkLoginStatus() {
        try {
            const userInfo = wx.getStorageSync('userInfo');

            // 新增用户名读取逻辑
            const userName = userInfo.name || '未知用户'; // 添加默认值

            if (!userInfo?.employee_number) {
                this.showLoginAlert();
                return;
            }

            this.setData({
                employeeNumber: userInfo.employee_number.trim(),
                userName: userName // 新增用户名存储
            }, );

        } catch (error) {
            console.error('存储读取失败:', error);
            this.showLoginAlert();
        }
    },

    showLoginAlert() {
        wx.showModal({
          title: '未登录',
          content: '请先登录后再使用该功能',
          confirmText: '去登录',
          cancelText: '返回首页', // 明确提示取消操作的含义
          success: (res) => {
            if (res.confirm) {
              wx.reLaunch({ url: '/pages/user/user' });
            } else if (res.cancel) {
              // 增加页面堆栈判断防止报错
              if (getCurrentPages().length > 1) {
                wx.navigateBack({ delta: 1 }); // 返回上一页
              } else {
                wx.reLaunch({ url: '/pages/home/home' }); // 无上一页时回首页
              }
            }
          },
          fail: (err) => {
            console.error('弹窗调用失败:', err);
          }
        });
      },

    // ====================== 用户信息 ======================
    initUserInfo() {
        console.log('[TRACE] 初始化用户信息');
        try {
            const userInfo = wx.getStorageSync('userInfo');
            if (!userInfo?.employee_number) {
                console.log('[WARN] 未找到用户信息，跳转登录');
                wx.redirectTo({
                    url: '/pages/login/login'
                });
                return;
            }

            this.setData({
                employeeNumber: userInfo.employee_number,
                deviceInfo: `${wx.getSystemInfoSync().model} ${wx.getSystemInfoSync().system}`
            }, () => {
                console.log('[TRACE] 用户信息更新完成');
            });

        } catch (err) {
            console.error('[ERROR] 用户信息初始化失败:', err);
        }
    },

    // 输入处理
    onInput(e) {
        this.setData({
            inputText: e.detail.value
        });
    },

    // 生成按钮点击
    handleGenerate() {
        if (this.data.isLoading || this.data.videoData) return;
        this.setData({
            showDisclaimer: true
        }); // 显示声明弹窗
    },

    // 关闭弹窗
    hideDisclaimer() {
        this.setData({
            showDisclaimer: false
        });
    },

    // 点击放弃按钮
    handleCancel() {
        this.setData({
            showDisclaimer: false,
            inputText: '',
            videoData: null
        });
        this.showTip('已取消操作', 'warning');
    },

    // 点击确认按钮
    async handleConfirm() {
        this.setData({
            showDisclaimer: false
        });

        const text = this.data.inputText.trim();
        if (!text) return this.showTip('请输入内容', 'error');

        // 正则提取链接
        const urlMatch = text.match(/https:\/\/[^\s]+/);
        if (!urlMatch) return this.showTip('未检测到有效链接', 'error');

        const rawUrl = urlMatch[0];
        this.setData({
            isLoading: true
        });

        try {
            // 编码URL参数
            const encodedUrl = encodeURIComponent(rawUrl);
            const apiUrl = `https://douyindownload.10v.cc/api/download?url=${encodedUrl}&prefix=true&with_watermark=false`;

            // 下载文件
            const {
                tempFilePath
            } = await this.downloadFile(apiUrl);

            this.setData({
                videoData: {
                    tempFilePath
                },
                isLoading: false
            });
            this.showTip('解析成功！');
        } catch (err) {
            this.setData({
                isLoading: false
            });
            this.showTip('解析失败，请检查链接', 'error');
        }
    },

    // 文件下载
    downloadFile(url) {
        return new Promise((resolve, reject) => {
            wx.downloadFile({
                url,
                success: res => {
                    if (res.statusCode === 200) {
                        resolve(res);
                    } else {
                        reject(res);
                    }
                },
                fail: reject
            });
        });
    },

    // 保存到相册
    async handleSave() {
        wx.showLoading({
            title: '保存中...',
            mask: true
        });

        try {
            await wx.saveVideoToPhotosAlbum({
                filePath: this.data.videoData.tempFilePath
            });
            wx.hideLoading();
            this.showTip('保存成功！');
        } catch (err) {
            wx.hideLoading();
            this.showTip('保存失败，请授权权限', 'error');
        }
    },

    // 动态提示
    showTip(text, type = 'success') {
        wx.vibrateShort(); // 添加震动反馈
        this.setData({
            showTip: true,
            tipText: text,
            tipType: type
        });
        clearTimeout(this.tipTimer);
        this.tipTimer = setTimeout(() => {
            this.setData({
                showTip: false
            });
        }, 2000);
    },

    // 视频播放事件（可选）
    onVideoPlay() {
        wx.vibrateShort({
            type: 'medium'
        }); // 播放时震动反馈
    }
});